package codeRandomThoughts.Test111二叉树的最小深度;

import codeRandomThoughts.utils.TreeNode;

//二刷 递归法
public class Solution3 {
    public int minDepth(TreeNode root) {
        //终止条件
        if (root == null) {
            return 0;
        }

        int left = minDepth(root.left);
        int right = minDepth(root.right);

        //如果左右孩子有一个为空
        if (root.left == null || root.right == null) {
            return left + right + 1;
        } else {
            //左右孩子都不为空,取更小的那个加1
            return Math.min(left, right) + 1;
        }
    }
}